/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package wasolicitudesfiec.logicacontrol.SolicitarConvalidacionMateria;

import web.util.Constantes;
import entidad.convalidacionMateria.Solicitudconvalidacionmateria;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.context.FacesContext;
import wasolicitudesfiec.ConvalidacionMateria.HistorialConvalidacionMateria;
import wasolicitudesfiec.logicacontrol.*;
import wasolicitudesfiec.general.MensajeException;

/**
 *
 * @author kabad
 */
public class CTRL_HistorialConvalidacionMateria extends CTRL_Base {

    private HistorialConvalidacionMateria gui;
    private LogicaHistorial logicaHistorial;

    public CTRL_HistorialConvalidacionMateria(HistorialConvalidacionMateria gui, FacesContext facesContext) {
        super(facesContext);
        this.gui = gui;
        String instancia;
        instancia = (String) externalContext.getRequestParameterMap().get("instancia");
        if (instancia != null) {
            externalContext.getSessionMap().put("instancia", instancia);
        }
    }

    public String getNombreInstanciaProceso() {
        String instancia;
        instancia = (String) externalContext.getSessionMap().get("instancia");
        return instancia;
    }

    public void inicializar() throws MensajeException {
        try {
            logicaHistorial = new LogicaHistorial();
            String actividad = externalContext.getRequestParameterMap().get("actividad");
            int idNodo = Integer.parseInt(externalContext.getRequestParameterMap().get("idNodo"));
            int idSolicitud = new Integer(logicaHistorial.leerPropiedadporActividad(idNodo, Constantes.Atributo.idSolicitudActividad));
            gui.getMenu().setTitulo("Actividad: " + actividad);
            Solicitudconvalidacionmateria solicitud = logica.getLogConvalidacionMateria().leerSolicitudConvalidacionNivel2(idSolicitud);
            String decisionRevision = this.logicaHistorial.leerPropiedadporActividad(idNodo, Constantes.Atributo.decisionRevision);

            if (Constantes.SolicitarConvalidacion.solicitarConvalidacion.equals(actividad)) {
                gui.getPanelsolicitarConvalidacion().setRendered(true);
                gui.getPanelrevisarSolicitud().setRendered(false);
                gui.getPanelvolveraSolicitar().setRendered(false);
                gui.getPanelemitirInforme().setRendered(false);
                gui.getPanelrevisarInformes().setRendered(false);
                gui.getPanelenvioSolicitudSTA().setRendered(false);
            } else if (Constantes.SolicitarConvalidacion.revisarSolicitud.equals(actividad)) {
                gui.getPanelsolicitarConvalidacion().setRendered(false);
                gui.getPanelrevisarSolicitud().setRendered(true);
                if (decisionRevision.equals(Constantes.Atributo.Decision.SolicitarInforme.toString())) {
                    gui.getPanelsolicitarInforme().setRendered(true);
                } else {
                    gui.getPanelsolicitarInforme().setRendered(false);
                }
                gui.getPanelvolveraSolicitar().setRendered(false);
                gui.getPanelemitirInforme().setRendered(false);
                gui.getPanelrevisarInformes().setRendered(false);
                gui.getPanelenvioSolicitudSTA().setRendered(false);
            } else if (Constantes.SolicitarConvalidacion.volverASolicitar.equals(actividad)) {
                gui.getPanelsolicitarConvalidacion().setRendered(false);
                gui.getPanelrevisarSolicitud().setRendered(false);
                gui.getPanelvolveraSolicitar().setRendered(true);
                gui.getPanelemitirInforme().setRendered(false);
                gui.getPanelrevisarInformes().setRendered(false);
                gui.getPanelenvioSolicitudSTA().setRendered(false);
            } else if (Constantes.SolicitarConvalidacion.emitirInforme.equals(actividad)) {
                gui.getPanelsolicitarConvalidacion().setRendered(false);
                gui.getPanelrevisarSolicitud().setRendered(false);
                gui.getPanelvolveraSolicitar().setRendered(false);
                gui.getPanelemitirInforme().setRendered(true);
                gui.getPanelrevisarInformes().setRendered(false);
                gui.getPanelenvioSolicitudSTA().setRendered(false);
            } else if (Constantes.SolicitarConvalidacion.revisarInforme.equals(actividad)) {
                gui.getPanelsolicitarConvalidacion().setRendered(false);
                gui.getPanelrevisarSolicitud().setRendered(false);
                gui.getPanelvolveraSolicitar().setRendered(false);
                gui.getPanelemitirInforme().setRendered(false);
                gui.getPanelrevisarInformes().setRendered(true);
                gui.getPanelenvioSolicitudSTA().setRendered(false);

            } else if (Constantes.SolicitarConvalidacion.imprimirInformeSTA.equals(actividad)) {
                gui.getPanelsolicitarConvalidacion().setRendered(false);
                gui.getPanelrevisarSolicitud().setRendered(false);
                gui.getPanelvolveraSolicitar().setRendered(false);
                gui.getPanelemitirInforme().setRendered(false);
                gui.getPanelrevisarInformes().setRendered(false);
                gui.getPanelenvioSolicitudSTA().setRendered(true);
            }

            gui.getLblFecha().setText(solicitud.getFechamodificacion());
              if (decisionRevision.equals(Constantes.Atributo.Decision.SolicitarInforme.toString())) {
                gui.getLblDecision().setText(decisionRevision + " a evaluador.");
            } else {
                gui.getLblDecision().setText(decisionRevision + " la solicitud");
            }
            String decisionEvaluacion = this.logicaHistorial.leerPropiedadporActividad(idNodo, Constantes.Atributo.decisionEvaluacion);
            gui.getLblDecision1().setText(decisionEvaluacion  + " la solicitud");
            String decisionVolverASolicitar = this.logicaHistorial.leerPropiedadporActividad(idNodo, Constantes.Atributo.decisionVolverASolicitar);
            gui.getLblDecisionVolverASolicitar().setText(decisionVolverASolicitar  + " la solicitud");
            gui.setIdSolicitud(solicitud.getIdSolicitudConvalidacion());

            if (solicitud.getFkIdSubDecano() != 0) {
               gui.getLblSubDecano2().setText(solicitud.getSubDecano().getPersona().toString());
                gui.getLblSubDecano1().setText(solicitud.getSubDecano().getPersona().toString());

            }
            if (solicitud.getFechacreacion() != null) {
                gui.getLblFecha().setText(solicitud.getFechacreacion());
            }
            if (solicitud.getFkIdEstudiante() != 0) {
                gui.getLblSolicitante().setText(solicitud.getEstudiante().getPersona().toString());
                gui.getLblSolicitante1().setText(solicitud.getEstudiante().getPersona().toString());
                gui.getLblMatricula().setText(solicitud.getEstudiante().getMatricula());
            }
            gui.getLblAConvalidar().setText(solicitud.getAConvalidar());

            if (solicitud.getFkIdMateria() != 0) {
                gui.getLblMateria().setText(solicitud.getMateria().getNombre());
            }
            if ((solicitud.getObservacionEstudiante() == null) || solicitud.getObservacionEstudiante().equals("")) {
                gui.getTxtaObservacionesEstudiante().setValue(Constantes.Mensajes.noComentarios);
            } else {
                gui.getTxtaObservacionesEstudiante().setValue(solicitud.getObservacionEstudiante());
            }
            if (solicitud.getFkIdProfesor() != 0) {
                gui.getLblCoordinador().setText(solicitud.getProfesor().getPersona().toString());
                gui.getLblEvaluador1().setText(solicitud.getProfesor().getPersona().toString());
                gui.getLblEvaluador().setText("El informe del evaluador " + solicitud.getProfesor().getPersona().toString() + " es: ");
                gui.getLblInforme().setText(solicitud.getInforme());
            }

            if ((solicitud.getObservacionProfesor() == null) || solicitud.getObservacionProfesor().equals("")) {
                gui.getTxtaObservacionesCoordinador().setValue(Constantes.Mensajes.noComentarios);
            } else {
                gui.getTxtaObservacionesCoordinador().setValue(solicitud.getObservacionProfesor());
            }

            if ((solicitud.getObservacionSubDecano() == null) || solicitud.getObservacionSubDecano().equals("")) {
                gui.getTxtaObservacionesSubDecano().setValue(Constantes.Mensajes.noComentarios);
                gui.getTxtaObservacionesSubDecano1().setValue(Constantes.Mensajes.noComentarios);

            } else {
                gui.getTxtaObservacionesSubDecano().setValue(solicitud.getObservacionSubDecano());
                gui.getTxtaObservacionesSubDecano1().setValue(solicitud.getObservacionSubDecano());
            }
            if ((solicitud.getNombreArchivo() == null) || solicitud.getNombreArchivo().equals("")) {
                gui.getLinkArchivo().setRendered(false);
                gui.getStNoArchivo().setRendered(true);
            } else {
                gui.getLinkArchivo().setRendered(true);
                gui.getStNoArchivo().setRendered(false);
                gui.getLinkArchivo().setText(solicitud.getNombreArchivo());
                gui.getLinkArchivo().setUrl(Constantes.Rutas.rutaArchivos + solicitud.getPathArchivoAdjunto().replaceAll(" ", "%20"));
            }
          if(solicitud.getFkIdSecretaria()!=0){
                gui.getLblSecretaria().setText(solicitud.getSecretaria().toString());
            }
        } catch (Exception ex) {
            ex.printStackTrace();
            Logger.getLogger(CTRL_HistorialConvalidacionMateria.class.getName()).log(Level.SEVERE, null, ex);
            throw new MensajeException("No es posible mostrar la solicitud. Por favor, intente luego de unos minutos.");
        }


    }
}